package ljl.codetop;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 没有重复数字，简单版本
 */
public class _46_permu {

    /**
     * 我看我这辈子能不能学会全排列？
     * 背过了，但实际上我不会
     */
    static class tryout {

        List<List<Integer>> res = new ArrayList<>();
        List<Integer> buf = new ArrayList<>();
        public List<List<Integer>> permute(int[] nums) {
            for (int num : nums) {
                buf.add(num);
            }
            backtrack(0);
            return res;
        }
        void backtrack(int i) {
            if (i == buf.size()) {
                res.add(new ArrayList<>(buf));
                return;
            }
            for (int j = i; j < buf.size(); j++) {
                Collections.swap(buf, i, j);
                backtrack(i + 1);
                Collections.swap(buf, i, j);
            }
        }
    }
}
